package com.wuxi.zhang.bytedance;

/**
 * 字节跳动：硬币面试题
 * 得到的最少硬币数（货币系统包括1、4、16、64元共计4种硬币，以及面值为1024的纸币。现在使用1024的纸币购买一件价值为N(0<N<=1024)的商品，问最少收到多少硬币。）
 *
 * @author wheat on 2019/12/24.
 */
public class CoinTest {

    public static void main(String[] args) {
        //花钱
        int buyMoney = 200;

        //找钱
        int residueMoney = 1024 - 200;

        //使用64元硬币个数
        int count64 = residueMoney / 64;

        //使用16元剩余的钱
        int count16 = (residueMoney - count64 * 64) / 16;

        //使用4元的钱
        int count4 = (residueMoney - count64 * 64 - count16 * 16) / 4;

        //使用1元的钱
        int count1 = (residueMoney - count64 * 64 - count16 * 16 - count4 * 4);

        int count = count64 + count16 + count4 + count1;

        System.out.println("使用钱count=" + count);

    }
}
